成功编译了我的TypeScript项目后,我打算使用ts-node在VS代码的调试模式下运行它.问题是,ts-node找不到我创建的d.ts个文件(而tsc没有问题).

项目 struct 如下:

/
    conf/
    dist/
    src/
        types/
package.json
tsconfig.json

tsconfig.json个相关条目包括:

{
    "compilerOptions": {
        "target": "es2017",
        "module": "commonjs",
        // "lib": [],
        "sourceMap": true,
        "outDir": "dist",
        "rootDir": "src",
        "moduleResolution": "node",
        "baseUrl": ".",
        "paths": {
            "*": [
                "node_modules/*",
                "src/types/*"
            ]
        },
        // "rootDirs": [],
        // "typeRoots": [],
        // "types": [],
    },
    "include": [
        "src/**/*"
    ]
}

ts-node找不到的定义文件是src/types/global.d.ts:

import { App } from '../App';

declare global {
    namespace NodeJS {
        interface Global {
            app: App;
        }
    }
}

所以,试着用ts-node来运行它,我明白了:

TSError: ⨯ Unable to compile TypeScript:
src/boot.ts(15,59): error TS2339: Property 'app' does not exist on type 'Global'.

如何在全局解决这一问题?我发现/// <reference path="./types/global.d.ts" />可以做到这一点,但我必须使用global.app在每个文件中重复它.

我的打字脚本版本是3.0.1

推荐答案

从7.0.0中的ts node 开始,启动时不会从tsconfig.json加载文件.相反,你应该像这样详细说明--files

ts-node --files src/boot.ts

Typescript相关问答推荐

Typescript对每个属性具有约束的通用类型

如何使用属性作为具有Generics的TypScript类中的类型守护?

TypeScript Page Routing在单击时不呈现子页面(React Router v6)

HttpClient中的文本响应类型选项使用什么编码?''

如何访问Content UI的DatePicker/中的sx props of year picker?'<>

根据上一个参数值查找参数类型,也返回类型

如果字符串文字类型是泛型类型,则用反引号将该类型括起来会中断

适当限制泛型函数中的记录

使用Dockerfile运行Vite React应用程序时访问env变量

推断从其他类型派生的类型

为什么我的查询钩子返回的结果与浏览器的网络选项卡中看到的结果不同?

如何以Angular 导入其他组件S配置文件

(TypeScript)TypeError:无法读取未定义的属性(正在读取映射)"

为什么我在这个重载函数中需要`as any`?

如何将对象数组中的键映射到另一种对象类型的键?

打字错误推断

界面中数组中的混合类型导致打字错误

Typescript泛型验证指定了keyof的所有键

Typescript:是否将联合类型传递给重载函数?

对象可能未定义(通用)