是否有任何样式指南定义如何设置默认属性值?希望官方。
class MyClass {
public foo: string;
constructor() {
this.foo = 'asdf';
}
}
和
var MyClass = /** @class */ (function () {
function MyClass() {
this.foo = 'asdf';
}
return MyClass;
}());
编译到
{{1}}
第一个更干净,类似于C#,但第二个更接近编译输出的语法(如果创建了定义文件),属性类型是显式的。
我查看了https://www.typescriptlang.org/docs/home.html,https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines和https://angular.io/guide/styleguide
答案 0 :(得分:2)
我不知道"官员"样式指南,可在任何地方指定。
自ES2015以来,classes are part of JavaScript。如果您的TypeScript target version为ES6
或更高版本,则上述内容均编译为
class MyClass {
constructor() {
this.foo = 'asdf';
}
}
此外,class fields in JavaScript目前(截至2017年7月)为Stage 3 proposal,这意味着他们最终会成为该语言的机会很大。所以最终编译的输出可能是:
class MyClass {
foo = 'asdf';
}
所有这一切都是我的说法,我不会过分担心您的TS代码是否接近"编译好的JS,因为这种差异最终会消失,在此之前,TypeScript的一个要点就是让你今天使用明天的JavaScript功能。来自TypeScript Handbook:
在TypeScript中,我们允许开发人员现在使用这些技术,并将其编译为适用于所有主流浏览器和平台的JavaScript,而无需等待下一版本的JavaScript。
好的,所以我的建议(不是"官方")是这样做的:
class MyClass {
public foo: string = 'asdf';
}
您已将属性类型显式为,将其初始化为类字段。这两个世界中最好的,对吧?可能?
无论如何,希望有所帮助;祝你好运!