zoukankan      html  css  js  c++  java
  • TypeScript 学习

    1. typescript 中的declare 表示声明 一个类或接口后,可以不引入既可以被编译器识别,做为类型使用

    如: 在 a.ts 中 定义了

    declare class A{
    
    name:string;
    
    age:number;
    
    }

    在b.ts 中可以使用

    let a:A = {name:"12",age:12};

    在vscode 中不会报错,但是使用 tsc 编译 b.ts 会报错,因为没有引入A.,如果import 了 A就可以正常编译成js.

    但是奇怪的是在 vue 的typescript 版本中使用可以正常打包(是ts-loader 作了处理),在不引入类型的情况下使用,可以作为 接口返回类型的约定,或只作为类型不使用new 创建。

     

    2. d.ts 是声明文件。d.ts里面的东西不能被引入,只能作为类型来用,d.ts里面的东西也不会被编译成js,只是作为编译阶段被识别。

    d.ts 可以作为 js的声明文件来使用(在js中是无法引入js的)。

    例如:有一个 a.js

    function A(){
        console.log("我是A");
    }
    export default A;

    在 main.ts中如果引入

    import A from "./a.js" //编译器会报错。

    新增一个 a.d.ts

    declare let A :()=>void;
    export default A;  //需要导出才能引用

     这时在main.ts 改成 如下,不会报错。实际编译后引入的是t.js。

    import A from "./t.js"
    A();

    使用ts-loader + webpack 打包main.ts 后得到的 是调用t.js 中的A。

    实际上d.ts 只是作为一个声明作用,只在编译阶段器识别作用。

    完整打包例子 https://github.com/muyiwei/Typescript-

  • 相关阅读:
    python中使用到lxml模块时,py2exe打包方法
    python random
    pip install lxml出错解决
    Windows上Python2和3如何兼容
    python 2.4 与 python 3.0 的比较
    java综合(三)springmvc与spring上下文关系
    java综合(二)springmvc与spring整合
    PHP7 新增加的两种运算符
    PHP trait 特性
    PHP 字符串拆分函数
  • 原文地址:https://www.cnblogs.com/chillaxyw/p/13307641.html
Copyright © 2011-2022 走看看