as 的 用法
- as 类型断言
有时候会遇到一些情况,你会比 TypeScript 更了解 某个值的详细信息。通常这会发生在你清除地知道 一个实体 具有 比 它 现有类型更确切的类型。
通过类型断言
这种方式可以告诉编辑器,“相信我,我知道自己在干嘛。”类型断言好比其他语言的类型转换,但是不进行特殊的数据检查和结构。只是在编译阶段起作用。TypeScript会假设你,程序员,已经进行了必须的检查。
类型断言有两种形式。其一是尖括号
语法:
let value: any = 'this is string'; let strLength: number = (<string>value).length;
另一个为as
语法:
let value: any = 'this is string'; let strLength: number = (value as string).length;
当你在TypeScript 里使用JSX时,只有as
语法断言是被允许的。
- import * as xxx from ‘xxx’
import * as obj from,这种写法是把所有的输出包裹到obj对象里。
// index.ts export function fn1() { console.log(1); } export function fn2() { console.log(2); } // main.ts import * as Fn from './index.ts'; Fn.fn1(); // 1 Fn.fn2(); // 2
let myName = 'Joe'; let myAge = 18; let myFn = function() { return 'My name is' + myName + ‘my age is’ + myAge; } export default { myName as name, // 别名 myAge as age, myFn as fn, } import {fn, age, name} from './test.js'; import * as test from './test.js'; //通过*来批量接收,as 来指定接收的名字
- as ES6为提供了重命名的方法
重命名export和import,如果导入的多个文件中,变量名字相同,即会产生命名冲突的问题,为了解决该问题,ES6为提供了重命名的方法,当你在导入名称时可以这样做。
/*************test1.js*****************/ export let myName: string = "我来自test1.js"; /*************test2.js*****************/ export let myName: string = "我来自test2.js"; /*************index.js****************/ import {myName as name1} from "./test1.js"; import {myName as name2} from "./test2.js"; console.log(name1); //我来自test1.js console.log(name2); //我来自test2.js