1.感谢伟大的typescript中文网站,看一遍网站基本可以学习到ts的精髓了
ts的类型兼容问题,
1.不同类型间赋值的时候
typeScript结构化类型系统的基本规则是,如果x要兼容y,那么y至少具有与x相同的属性。
name: string;
}
let x: Named;
// y's inferred type is { name: string; location: string; }
let y = { name: 'Alice', location: 'Seattle' };
x = y;
2.不同函数赋值的时候
let y = (b: number, s: string) => 0;
y = x; // OK
x = y; // Error
y有个必需的第二个参数,但是x并没有,所以不允许赋值。
JavaScript允许忽略参数
3.下面来看看如何处理返回值类型,创建两个仅是返回值类型不同的函数:
let x = () => ({name: 'Alice'});
let y = () => ({name: 'Alice', location: 'Seattle'});
x = y; // OK
y = x; // Error because x() lacks a location property
类型系统强制源函数的返回值类型必须是目标函数返回值类型的子类型
在vue项目使用ts。ts使用了装饰器模式让我们写的代码能够和
1.@components()
声明组件
2.@ props
声明props
3.@state
声明state的数据
4.普通变量
组件data里的数据 private name:String
5.get()
声明计算属性
6.@watch
声明监听器
7.@inject
注入父组件的数据
8.@action
声明store里改变数据的动作