xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

Typescript & classes & public shorthand

classes & public shorthand

Also of note, the use of public on arguments to the constructor is a shorthand that allows us to automatically create properties with that name.

http://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html#classes

with public


class Student {
    fullName: string;
    constructor(public firstName: string, public middleInitial: string, public lastName: string) {
        this.fullName = firstName + " " + middleInitial + " " + lastName;
    }
}
interface Person {
    firstName: string;
    lastName: string;
}
function hello(person: Person) {
    // return "Hello, " + person.firstName + " " + person.lastName;
    let {
        firstName,
        lastName,
    } = person;
    return `Hello, ${firstName} ${lastName}`;
}

let student = new Student("xgqfrms", "X.", "webgeeker");
let log = console.log;
log(student.firstName);
log(student.middleInitial);
log(student.lastName);
log(hello(student));
// document.body.innerHTML = hello(student);

no public


class Student {
    fullName: string;
    firstName: string;
    middleInitial: string;
    lastName: string;
    /// no public
    constructor(firstName: string, middleInitial: string, lastName: string) {
        this.firstName = firstName;
        this.middleInitial = middleInitial;
        this.lastName = lastName;
        this.fullName = firstName + " " + middleInitial + " " + lastName;
    }
}
interface Person {
    firstName: string;
    lastName: string;
}
function hello(person: Person) {
    // return "Hello, " + person.firstName + " " + person.lastName;
    let {
        firstName,
        lastName,
    } = person;
    return `Hello, ${firstName} ${lastName}`;
}

let student = new Student("xgqfrms", "X.", "webgeeker");
let log = console.log;
log(student.firstName);
log(student.middleInitial);
log(student.lastName);
log(hello(student));
// document.body.innerHTML = hello(student);


posted @   xgqfrms  阅读(199)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-06-06 copy-webpack-plugin & ignore folder
2018-06-06 橘子 !== 桔子 ? 橘子 : 桔子
2018-06-06 VS Code Configs Alll in One & settings.json & launch.json & tasks.json
2017-06-06 ECMAScript 2017 / ES8 先睹为快 All In One
点击右上角即可分享
微信分享提示