as 的 用法

时间:2021-2-20 作者:admin

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
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。