簡體   English   中英

有沒有一種方法可以在TypeScript上使用不帶d.ts定義的npm軟件包

[英]Is there a way to use a npm package without d.ts definition on TypeScript

有沒有辦法在TypeScript和Node js上使用不帶d.ts定義的npm包? 如果是的話,我該如何實現?

當前,我有類似的東西,它拋出一個錯誤,告訴我“找不到模塊'node-rest-client'”,這是因為.d.ts文件不存在。

import * as NodeRest from 'node-rest-client';

export class MyClass {
}

編輯我這樣解決:

/// <amd-dependency path="node-rest-client" />
let NodeClient = require('node-rest-client');
export class MyClass { }

這個解決方案很好,還是更好地實現了Dan的回應?

我會考慮至少在基本形式上添加類型。

您將錯過使用打字稿的主要原因

但是,有時不方便,或者您想集中精力處理當前任務。

在這種情況下,當在“節點”中或使用捆綁器(webpack等)時

您可以隨時求助於“ require”

greeter.js

module.exports = {
    greet: () => "hello"
}

greeter.test.ts

import * as assert from "assert";
interface IGreeter {
    greet(): string;
}
const greeter: IGreeter = require("./greeter");
describe("amodule", () => {
    it("works", () => {
        assert.equal(greeter.greet(), "hello");
    });
});

或簡單地(noImplicitAny:否)

require("./greeter").greet()

或(noImplicitAny:true)

(require("greeter") as any).greet()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM