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-

  • 相关阅读:
    [汇编与C语言关系]1.函数调用
    深入理解计算机系统
    设计模式
    深度探索C++对象模型
    More Effective C++
    MySQL必知必会
    数据结构与算法分析
    Java编程思想(后)
    Java编程思想(前十章)
    Java 入门
  • 原文地址:https://www.cnblogs.com/chillaxyw/p/13307641.html
Copyright © 2011-2022 走看看