打字稿得到錯誤TS2304:找不到名字'要求'我試圖讓我的第一個Typescript和DefinitelyTyped節點應用程序啟動并運行,并遇到一些錯誤。當我嘗試轉換一個簡單的ts節點頁面時,我收到錯誤“TS2304:找不到名稱'require'”。我已經在SO上閱讀了其他幾個這樣的錯誤,我認為我沒有類似的問題。我在shell提示符下運行命令:tsc movie.server.model.ts。該文件的內容是:'use strict';/// <reference path="typings/tsd.d.ts" />/* movie.server.model.ts - definition of movie schema */var mongoose = require('mongoose'),Schema = mongoose.Schema;var foo = 'test';var mongoose = require('mongoose')行引發錯誤typings / tsd.d.ts文件的內容是:/// <reference path="node/node.d.ts" />/// <reference path="requirejs/require.d.ts" />.d.ts文件引用放在相應的文件夾中,并通過命令添加到typings / tsd.d.ts:tsd install node --savetsd install require --save生成的.js文件似乎工作正常,所以我可以忽略錯誤。但我很想知道為什么會出現這種錯誤以及我做錯了什么。
3 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
對于TypeScript 2.x,現在有兩個步驟:
安裝定義的包
require
。例如:npm install @types/node --save-dev
告訴TypeScript將其全局包含在
tsconfig.json
:{ "compilerOptions": { "types": ["node"] }}
第二步僅在您需要訪問全局可用功能時才很重要require
。對于大多數包,您應該只使用該import package from 'package'
模式。不需要在上面的tsconfig.json類型數組中包含每個包。

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
您可以
declare var require: any
或者,要獲得更全面的支持,請使用DefinitelyTyped的require.d.ts
另外,var mongoose = require('mongoose')
您可以嘗試以下方法
import mongoose from 'mongoose' // orimport mongoose = require('mongoose')
- 3 回答
- 0 關注
- 1246 瀏覽
添加回答
舉報
0/150
提交
取消