V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
okcdz
V2EX  ›  JavaScript

typescript 的 .d.ts 文件如何 Import

  •  
  •   okcdz · 2015-11-14 00:08:28 +08:00 · 15928 次点击
    这是一个创建于 3301 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了官方的handbook不太懂这个.d.ts 文件到底有何用处

    之所提这个问题,是因为用 npm 安装的type-script 没有办法 import 而我自己试过单独把 collections.js 和 collections.d.ts 提取出来仍然没办法 import 不知道.d.ts 文件到底是什么含义

    5 条回复    2015-11-15 18:50:20 +08:00
    carlosliu
        1
    carlosliu  
       2015-11-14 04:51:53 +08:00
    *.d.ts 是为第三方 javascript module 提供一个让代码编辑软件和 typescript 编译器可以理解的 interface 。

    一般的使用法是在文件中加入如下注释即可,不需要 import 。
    /// <reference path="./collections.d.ts" />

    最新的 vscode 和 atom-typescript 也支持直接在 jsconfig.json/tsconfig.json 配置里的 "files" 定义中引用 .d.ts 文件,而不再需要在每个文件中写这种重复的 comment 。参见 http://blogs.msdn.com/b/vscode/archive/2015/07/06/vs-code-es6.aspx
    okcdz
        2
    okcdz  
    OP
       2015-11-15 09:14:46 +08:00
    @carlosliu 那具体的 ts 或者 js 的实现文件应该放在哪里?放在 d.ts 文件同一个目录下面吗?
    按照你的做法确实成功了。但是为什么只需要 reference d.ts 文件就可以,而不需要 import 真正实现的 ts 或者 js 文件呢?
    carlosliu
        3
    carlosliu  
       2015-11-15 12:15:33 +08:00   ❤️ 1
    external js + *. d.ts :
    把 js 文件單獨添加到 index.html <script>裏就行。
    參見 http://www.typescriptlang.org/Handbook#modules-working-with-other-javascript-libraries


    *.ts :
    collections.ts 定義的是一個 typescript internal module ,直接引用時不需要 import 。
    或者使用 import myset = collections.Set; 形式。
    參見 http://www.typescriptlang.org/Handbook#modules-splitting-across-files
    okcdz
        4
    okcdz  
    OP
       2015-11-15 15:25:30 +08:00
    @carlosliu 我写的不是网页,而是 nodejs 那是不是把 collections.ts 放在 collections.d.ts 同一目录下就可以了,而不用去 require
    carlosliu
        5
    carlosliu  
       2015-11-15 18:50:20 +08:00
    @okcdz 如果你使用 collections.ts 的話,就不需要 collections.d.ts 了。我沒用 typescript 做過 node.js 項目,你自己摸索試試。我猜是不需要 require 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3571 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:37 · PVG 12:37 · LAX 20:37 · JFK 23:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.