我是TypeScript和Javascript类的新手!
我正在学习TypeScript,在那里我创建了像这样简单的内容
class User {
name: string;
email: string;
constructor(name: string, email: string) {
this.name = name;
this.email = email;
}
}
let newUser = new User("Rohit Bhatia", "iro@gmail.com");
这是等价的
var User = /** @class */ (function () {
function User(name, email) {
this.name = name;
this.email = email;
}
return User;
}());
var newUser = new User("Rohit Bhatia", "iro@gmail.com");
现在,我有三个问题
@class是什么(在js中通常是@)? var User = /** @class */ (function () {
类也在javascript中吗?那么为什么不使用打字稿将其转换为JS类
在TS类中,我们可以做这样的事情
班级用户{ 名称:字符串; 电子邮件:字符串;
但是在Javascript中我们不能做这样的事情吗?或JS类和TS类之间有什么区别
答案 0 :(得分:2)
答案 1 :(得分:1)
回答您的问题:
@Class是一种与标准无关的注释/注释。
在ES5中(不说是“经典javascript”),没有类,但是有一种模拟其行为的方法,即使将Typescript代码转换为ES5也是如此。与新规范相比,以这种方式编码“类”(记住没有)是很困难的。
它也是答案2。另外:
是现代Javascript ECMAScript 6规范(ES6)的一部分,现在Javascript具有类。 Typescript是ES6的一种演变。在ES6中,它是这样的:
class User {
constructor(name, email) {
this.name = name;
this.email = email;
}
}
var newUser = new User('Rohit Bhatia', 'iro@gmail.com');
答案 2 :(得分:1)
我正在回答第三个问题。