Webサイト用のTypeScriptnodejsプロジェクトがあります。この特定のnodejsモジュールで利用可能な機能を使用する必要があります: https://www.npmjs.com/package/weather-js
このモジュールのリポジトリには.d.tsファイルがありません。また、「@ types」TypeScriptリポジトリにもありません。このモジュールの型定義は必要ありませんが、TypeScriptには含まれておらず、エラーが発生します。
どちらの方法でインポートしようとしても、
TS2304: Cannot find name 'require'.
ビルドコンソールで、または
TypeError: qs.escape is not a function
ブラウザの開発コンソールで。
StackOverflowに関するここでの多くの回答は、2018年に利用できなくなったリポジトリを必要とするソリューション、または機能する可能性があるが私にとってはエラーが発生するソリューションを示唆しています
TypeError: qs.escape is not a function
2018年にTypeScriptでnodejsモジュール機能(.d.ts定義が利用できない)を使用/インポート/要求/消費する正しい方法は何ですか?
ダミー定義を追加してインポートできるようにすることができますが、モジュールの内容を実際に入力する必要はありません(ただし、完全に入力して DefinitlyTyped に送信する必要がある場合は、誰もが型安全性の恩恵を受けることができます!)
天気-js.d.ts
// declaring module will allow TypeScript to import the module
declare module 'weather-js' {
// typing module default export as `any` will allow you to access its members without compiler warning
var weatherJs: any;
export default weatherJs;
}
yourCode.ts
import weather from 'weather-js'
weather.find({search: 'San Francisco, CA', degreeType: 'F'}, () => {})