TypeScript 之 声明文件的发布

  • https://www.tslang.cn/docs/handbook/declaration-files/publishing.html
  • 发布声明文件到npm,有两种方式:
  1. 与你的npm包捆绑在一起(推荐)
  2. 发布到npm上的@types organization。
  • 包含声明文件到你的npm包

    如果你的包有一个主.js文件,你还是需要在package.json里指定主声明文件。 设置 types属性指向捆绑在一起的声明文件。 比如:

{
    "name": "awesome",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/main.js",
    "types": "./lib/main.d.ts"
}

注意:"typings"与"types"具有相同的意义,也可以使用它。

注意:如果主声明文件名是index.d.ts并且位置在包的根目录里(与index.js并列),你就不需要使用"types"属性指定了。

  • 依赖

    所有的依赖是由npm管理的。 确保所依赖的声明包都在 package.json的"dependencies"里指明了 比如,假设我们写了一个包它依赖于Browserify和TypeScript。

{
    "name": "browserify-typescript-extension",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/main.js",
    "types": "./lib/main.d.ts",
    "dependencies": {
        "browserify": "latest",
        "@types/browserify": "latest",
        "typescript": "next"
    }
}

这里,我们的包依赖于browserify和typescript包。 browserify没有把它的声明文件捆绑在它的npm包里,所以我们需要依赖于@types/browserify得到它的声明文件。 typescript,它把声明文件放在了npm包里,因此我们不需要依赖额外的包。

我们的包要从这两个包里获得声明文件,因此browserify-typescript-extension的用户也需要这些依赖。 正因此,我们使用 "dependencies"而不是"devDependencies",否则用户将需要手动安装那些包。 如果我们只是在写一个命令行应用,并且我们的包不会被当做一个库使用的话,那么就可以使用 devDependencies。

  • 不要在声明文件里使用/// <reference path="..." />,应该使用/// <reference types="..." />代替。
  • 打包所依赖的声明

    如果你的类型声明依赖于另一个包:

  1. 不要把依赖的包放进你的包里,保持它们在各自的文件里。
  2. 不要将声明拷贝到你的包里。
  3. 应该依赖于npm类型声明包,如果依赖包没包含它自己的声明的话。

原文地址:https://www.cnblogs.com/cag2050/p/9560272.html

时间: 2024-08-14 10:29:07

TypeScript 之 声明文件的发布的相关文章

TypeScript 之 声明文件的结构

https://www.tslang.cn/docs/handbook/declaration-files/library-structures.html 模块化库 一些库只能工作在模块加载器的环境下. 比如,像 express只能在Node.js里工作所以必须使用CommonJS的require函数加载. ECMAScript 2015(也就是ES2015,ECMAScript 6或ES6),CommonJS和RequireJS具有相似的导入一个模块的表示方法. 例如,对于JavaScript

TypeScript学习笔记(八) - 声明文件

本篇将介绍TypeScript的声明文件,并简单演示一下如何编写和使用声明文件.本篇也是这个系列的最后一篇. 一.声明文件简介 TypeScript作为JavaScript的超集,在开发过程中不可避免要引用其他第三方的JavaScript的库.虽然通过直接引用可以调用库的类和方法,但是却无法使用TypeScript诸如类型检查等特性功能.为了解决这个问题,需要将这些库里的函数和方法体去掉后只保留导出类型声明,而产生了一个描述JavaScript库和模块信息的声明文件.通过引用这个声明文件,就可以

如何编写 Typescript 声明文件

使用TypeScript已经有了一段时间,这的确是一个好东西,虽说在使用的过程中也发现了一些bug,不过都是些小问题,所以整体体验还是很不错的. TypeScript之所以叫Type,和它的强类型是分不开的,这也是区别于JavaScript最关键的一点,类型的声明可以直接写在代码中,也可以单独写一个用来表示类型的描述文件*.d.ts. 常用方式 首先在d.ts中是不会存在有一些简单的基本类型定义的(因为这些都是写在表达式.变量后边的,在这里定义没有任何意义),声明文件中定义的往往都是一些复杂结构

APK文件如何发布

============问题描述============ APK文件如何发布,做了一个应用程序. 放在内网供下载,但下载下来的文件 被改名了.不能直接使用,有没有什么办法解决这个问题,不让改名? 是不是必须发布到互联网的安卓市场才可以解决这个问题? 谢谢了 ,知道的回复一下. 本来是给公司内部用的,放内网下载. 但手机下载后不同手机下载后改名也不同.不知道有没有解决办法 ============解决方案1============ 不用发布到安卓市场.有可能是你服务器设置的问题,你看看下载下来的文

Delphi Android USB声明文件

自己转的比较全面的USB声明文件: unit Androidapi.JNI.USB; interface uses AndroidAPI.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.os, androidapi.JNI.App; type JUsbInterface = interface; JUsbEndPoint = interface; JUsbManager = interface; JUsbRequest = interfac

Windows Azure Cloud Service (40) 使用VS2013的publishSettings文件,发布Cloud Service

<Windows Azure Platform 系列文章目录> 在之前的文档中,笔者已经介绍了如何使用本地证书上传至云端的方式,将本地的Cloud Service发布至云端. 在本章中,笔者将介绍如何使用publishSettings文件,发布Cloud Service. 注意:本文适用于国外的Azure Global和国内世纪互联运维的Azure China. 一.下载publishSetting文件: 国外的Azure Global,请在浏览器中输入地址:http://go.microso

TypeScript 申明文件的发布及使用

一 ,发布文件: ①, 首先需要在npm官网注册一个账号: https://www.npmjs.org ②, 使用npm adduser命令添加一个账号 注意:需要输入3个信息 1 , 你的用户名( 如 : 我的是aonaufly ) 2 , 你的密码 ( 注意 , 密码是掩藏的不会显示出来  , 也不会以*的显示显示  , 输入完成以后按enter键键入下一项) 3 , 你的注册邮箱 ③ , 注册一个github账号 ( https://github.com ) 并且新建一个项目 ④, 打包项

【转载】在Angular 2/Typescript中声明全局变量的最佳方式是什么?

问题详细描述 我想在Typescript语言中的Angular 2中声明一些全局可见的变量.最佳的实践方法是? 推荐的实现方法 这是最简单的解决方案,无需使用Service或Observer: 将全局变量放在文件中然后导出它们. // // ===== File globals.ts // 'use strict'; export const sep='/'; export const version: string="22.2.2"; 要在另一个文件中使用这些全局变量,请使用impo

python声明文件编码,必须在文件的第一行或第二行

#coding=utf-8和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型 注意的两点: 1.声明必须在文件的第一行或第二行: 2.coding后面必须紧跟冒号或等号,#coding : utf-8是错的. 例: 声明编码前有字符串 1 '''testing user longin''' 2 #coding:utf-8 3 4 print u'''登录相关的测试''' 或 声明编码位于第三行 1 #'test' 2 3 #coding:utf-8 4 5 print