TypeScript入门基本相当于一门和C#语言的东西了,比较漫长的入门过程。

最大的一个门槛,就是 TypeScript 最后编译成 JavaScript。调用别人的库也是用 JavaScript 方式存在的。

TypeScript和JavaScript的协作就需要.d.ts文件了。

查看已经安装的包

npm ls -g --depth 0

tsd本来是安装类型文件的,废弃了,建议typings

typings也废弃了,建议用这样的格式安装

npm install --save @types/node

使用例子

我们通过给node增加类型包来举例,开发一个继承EventEmitter的类的例子。

npm install --save @types/node

这个@types是一个npm发布用户的意思。

涉及文件 .vscode/launch.json、.vscode/tasks.json、package.json、.package-lock.json、tsconfig.json 等

参考

压缩包下载

launch.json  (VSCode菜单Debug -> Add Configuration)

{// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": "Launch Program","program": "${workspaceFolder}\\bin\\index.js",//"preLaunchTask": "build ts",//"cwd": "${workspaceFolder}/./bin",  //修改执行node index.js 的路径"console": "internalConsole",       //输出到 DEBUG CONSOLE (默认值)"internalConsoleOptions": "openOnSessionStart",  //每次运行自动转到 DEBUG CONSOLE 以显示输出内容"outFiles": ["${workspaceFolder}/**/*.js"]}]
}

tasks.json  (VSCode菜单 Terminal -> Configure Default Build Task)

{// See https://go.microsoft.com/fwlink/?LinkId=733558"version": "2.0.0","tasks": [{"label": "build ts","type": "typescript","tsconfig": "tsconfig.json","problemMatcher": ["$tsc"],"group": {"kind": "build","isDefault": true}}]
}

package-lock.json

package.json  (npm init 和 npm install npm install --save @types/node)

tsconfig.json  (tcs -init)

{"compilerOptions": {"target": "es5",                          /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */"module": "umd",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */"outDir": "bin",                        /* Redirect output structure to the directory. */"strict": true,                           /* Enable all strict type-checking options. */"sourceMap": true,//"baseUrl": "ts",  //不要这个设置,会导致自动生成的import语句缺少./部分,运行时报找不到模块出错//"esModuleInterop": true,//"moduleResolution": "node"
    }
}

ts/index.ts  实现源码

console.log("执行路径: " + process.cwd());//CTRL + Shift + Y 显示 DEBUG CONSOLE

import { EventEmitter } from "events";
import { N1 } from "./utils";class MyEmitter extends EventEmitter
{}let my = new MyEmitter();
my.on("abc", (a1, a2)=>{console.log("event, " + a1 + ", " + a2 + ", " + new Date());
});my.emit("abc", "第一个参数", "第二个参数");let r = N1.C1.Add1(10, 20);console.log(r);

ts/utils.ts

export namespace N1
{export class C1{public static Add1(a:number, b:number){return a * 10 + b * 100;}}
}

package-lock.json的作用

转载于:https://www.cnblogs.com/nuets/p/10130929.html

TypeScript 及类型库 tsd typings @types/XXX 入门相关推荐

  1. [MobX State Tree数据组件化开发][3]:选择正确的types.xxx

    ?系列文章目录? 定义Model时,需要正确地定义props中各字段的类型.本文将对MST提供的各种类型以及类型的工厂方法进行简单的介绍,方便同学们在定义props时挑选正确的类型. 前提 定义pro ...

  2. webstorm 不识别.config文件_用TypeScript开发手势库 - (2)tsconfigamp; rollup.configamp;npx...

    用TypeScript开发手势库 - (2)tsconfig.json & rollup.config.js & npx any-touch 一个手势库 往期目录 用 TypeScri ...

  3. 快速而深入地了解TypeScript及其类型

    by David Piepgrass 由David Piepgrass 快速而深入地了解TypeScript及其类型 (A quick yet in-depth tour of TypeScript ...

  4. TypeScript 引入js库

    TypeScript 引入js库 如果要使用现有的js文件的话,需要对编译器增加–allowJS参数.可以修改tsconfig.json中的compilerOptions,将其中的"allo ...

  5. TypeScript 基础类型+函数+接口+类

    1.简介: TypeScript 是 JavaScript 的一个超集.由微软开发的自由和开源的编程语言.设计目标是开发大型应用.是一种面向对象的编程语言,遵循强类型 javascript与types ...

  6. CDR插件开发之CPG插件003 - 使用VS2019编译CDR类型库 VGCoreAuto.tlb

    在上篇文章中讲到了CPG插件环境的搭建,实际上主要是使用VS2019这个集成开发环境.由于要使用C++语言环境,因此在安装VS2019的过程中勾选了C++桌面开发环境.CDR软件环境请自行安装X4.X ...

  7. 简单探讨TypeScript 枚举类型

    这篇文章主要介绍了TypeScript 枚举类型,TypeScript 在 ES 原有类型基础上加入枚举类型,使得在 TypeScript 中也可以给一组数值赋予名字,这样对开发者比较友好,可以理解枚 ...

  8. 如何使用MFC和类型库创建自动化项目

    摘要 本文详细介绍了如何自动化像Microsoft Office这样支持COM的应用程序. 更多信息 下面部分介绍了如何创建MFC项目.采用Microsoft Excel举例,你可以将前8个步骤用于任 ...

  9. TypeScript 基础类型 1

    TypeScript 基础类型 自本节起,我们将开始接触 TypeScript 的类型系统,这也是 TypeScript 最为核心的部分. 本节介绍 TypeScript 中一些基础类型,有些特殊类型 ...

最新文章

  1. xmpp关于后台挂起的消息接收,后台消息推送,本地发送通知
  2. json.net使用说明一
  3. Ril分析三——客户端请求和响应处理与modem交互
  4. openssh升级sftp_CentOS6.5升级OpenSSH 8.3版本
  5. PP团队圣经巨著《Application Architecture Guide2.0》24章-Web程式开发向导
  6. C#LeetCode刷题之#26-删除排序数组中的重复项(Remove Duplicates from Sorted Array)
  7. 初中毕业学计算机在哪学,初中毕业要学计算机要去哪个里学呢
  8. idea使用activiti插件
  9. 机器人“病患”会流血会休克,魔鬼训练从斯坦福医院开始 |准医生的噩梦
  10. java中,数值计算时的类型转换 ( 两个int类型相加,赋值给double )
  11. 软件工艺师:专业、务实、自豪》一3.3 笔者个人所推崇的定义
  12. OpnCV_(HoughCircles to find circles)霍夫变换检测圆形
  13. wget 持续下载确保完成
  14. (三)MFC学习之动画
  15. speedoffice(word)如何批量让字体大一号
  16. SG90舵机驱动,有代码
  17. Mac如何破解管理员密码
  18. 【codeforces 760B】Frodo and pillows
  19. python计算学分绩点的程序_模拟登录教务系统计算GPA的小程序
  20. 我们能从后验分布中学到什么?贝叶斯后验的频率解释

热门文章

  1. C++ 吃透回溯算法
  2. Dlib android 人脸识别,Dlib 人脸识别
  3. feign调用第三方接口服务
  4. 相控阵基础之2-移相与时延
  5. pushlet实现单机-集群服务端消息推送
  6. 看图了解linux命令
  7. A.图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)
  8. 百度全面回应“魏则西事件”:竞价排名不光看价格
  9. pgsql 命令行连接数据库
  10. 神经网络的代价函数解释