1, 类型比较 Type Compatibility
ts 代码
- **
- * Type Compatibility
* 类型比较.
- */
- interface Named {
- name: string;
- }
- var x: Named;
- // 判断这个 y 的类型是 { name: string; location: string; }
- var y = { name: 'Alice', location: 'Seattle' };
- x = y;
- var items = [1, 2, 3];
- // 不压迫强迫这些额外参数...
- items.forEach((item, index, array) => console.log(item));
- // Should be OK!
- items.forEach((item) => console.log(item))
- var k = () => ({name: 'Alice'});
- var z = () => ({name: 'Alice', location: 'Seattle'});
- k = z; // OK
- //z = k; // 这 k() 方法缺少了 location 属性. 所以赋给 z() 方法是会报错的.
生成的 JS 代码
- var x;
- // 判断这个 y 的类型是 {
- name: string; location: string;
- }
- var y = {
- name: 'Alice', location: 'Seattle'
- };
- x = y;
- var items = [1, 2, 3];
- // 不压迫强迫这些额外参数...
- items.forEach(function (item, index, array) {
- return console.log(item);
- });
- // Should be OK!
- items.forEach(function (item) {
- return console.log(item);
- });
- var k = function () {
- return ({
- name: 'Alice'
- });
- };
- var z = function () {
- return ({
- name: 'Alice', location: 'Seattle'
- });
- };
- k = z; // OK
- //z = k; // 这 k() 方法缺少了 location 属性. 所以赋给 z() 方法是会报错的.
工程源代码
TypeScript 类型比较《Type Compatibility》 案例代码详解
博客所有文章是本人 2014 年撰写, 而 GitHub 的源代码是有些是 2014 年与 2015 年进行整理, 由于在 2013 年项目接触 TypeScript, 同时在当年接触 KendoUI 开发的时候 TypeScript 的影子, 故一年后决定把官方文档所有 API 文档认真琢磨了一遍, 并且撰写成一本最全的中文 TypeScript 入门指南详解案例教程与代码, 当初的下载量还是比较高的. 由于最近接触 Kotlin, 自从学习 TypeScript, 它的语法对我后面学习 Kotlin 有了极大的帮助, 个人感觉, 它的语法跟 ActionScript,Swift 写法很像. 故虽然好几年没怎么开发前端, 由于它的重要性特意重新花点进行整理这门前端语言.
来源: http://www.jianshu.com/p/d1ab0d58f8fa