üzerinde
DÜZENLEME
takip edin en son güncellemeleri Geçenlerde bu konuda bir blog post yazdım. Aşağıdaki içeren api.ts
ile index.ts
değiştirirseniz Özetlemek gerekirse, sen autodts kullanabilirsiniz:
export {default as Token} from './api/Token';
(değil içine, yanına) emin
api.ts
api
dizini olarak aynı yerde olduğundan emin olun.
{
"name": "api",
"version": "1.0.0",
"main": "dist/api.js",
"scripts": {
"preinstall": "npm install autodts",
"postinstall": "autodts link",
"prepublish": "tsc && autodts generate"
},
"typescript": {
"definition": "index.d.ts"
},
"dependencies": {
"autodts": "~0.0.4"
},
"devDependencies": {
"@lib/autodts-generator": "~0.0.1",
"typescript": "~1.5.3"
}
}
Bu paket adı api
dosyayı api.ts
ve dizini api
eşleşmesi önemlidir:
Sonra bir
package.json
dosyasına ihtiyacım var. Bu şekilde hem Node.js hem de TypeScript derleyicisi paketinizi kullanırken aynı yerlere bakacaktır.
{
"compilerOptions": {
"declaration": true,
"module": "CommonJS",
"target": "es5",
"outDir": "dist"
},
"files": [
"api.ts"
]
}
Şimdi npm install
paketinizi derlemek ve package.json
yılında definition
ortamda tanımlanan bir paket index.d.ts
dosyası üretecektir:
Son olarak, bir tsconfig.json
dosyasına ihtiyacım var.
paket kullanmak için, böyle bir şey yapabilirsiniz: Sen bugüne kadar
reference path
tutmak için
autodts link
kullanabilirsiniz
/// <reference path = "api/index.d.ts" />
import {Token} from 'api';
class foo {
key: Token;
}
, bunun için blog yayınına ve/veya autodts docs kontrol edin.
elde edilen index.d.ts
içerir:
/// <reference path="index.ref.d.ts" />
declare module 'api/Token' {
interface Token {
code: string;
}
export default Token;
}
declare module 'api' {
export { default as Token } from 'api/Token';
}
index.ref.d.ts
ve api.js
boştur.
Geç cevap için ayrıntılı bir cevap ve özürlerim için teşekkür ederim, anlaşmayı tamamen değiştiren TypeScript 1.6'yı test etmeyi bekliyordum. Çözümünüz, TypeScript <1.6 için gitmenin yoludur. TypeScript 1.6 için, bu GitHub sorununda bazı ayrıntılar vardır: https://github.com/Microsoft/TypeScript/issues/247 –
@BrunoGrieder https://github.com/Microsoft/TypeScript/wiki/Typings-for-npm -paketler gerçekten belirsizdir. Github sorunları hakkındaki yorumların sayfalarını okuyorum, ancak bu gerçekten basit soruya cevap bulamıyorum. Typecript> 1.6 ile, örneğin, "inversify" modülünü (yazılan) kullanan bir kütüphane yazmak ve sonra da kütüphanenin dışında tersini kullanmak istediğinizde. Bunu nasıl başarırsın? – David
@David Hiçbir zaman inversify kullanmamıştım ama bir boilerplate kütüphanesi bulabilirsin [here] (http://github.com/wadahiro/typescript-library-boilerplate) ve yazdığım bazı detaylar [orada] (http://stackoverflow.com)/questions/34221594/best-way-to-share-a-jds-nesne-arasında-typescript-frontend-ve-nodejs-backend/34225037 # 34225037) ve aşağıya yakın benzer [orada] (http://stackoverflow.com/questions/35582275/using-an-external-typescript-library-within-a-typescript-internal-module/35588095#35588095) –