通过“import”导入的所有内容都会获得类型,但 require() 不会

问题描述 投票:0回答:3

我不知道这个问题是否与 VS Code 有关。但基本上当使用这种语法在打字稿中导入包时

import express from "express";

我得到了类型定义和代码本身。 但每当我使用

const express = require("express");

它有

any
类型。这不是
express
具体的。

顺便说一句,我是 Node.js 新手。

node.js typescript node-modules
3个回答
5
投票

如果您需要使用

require
来加载模块(因为您位于 CommonJS 模块中或出于任何原因),您仍然可以将其与 import 语句一起使用。它也会加载类型。

import express = require('express');

0
投票

我不认为这与 VS Code 相关,但根据个人经验,你是对的:

import
require
的工作方式不同。如果我们使用
import
关键字而不是
require
,TypeScript 仅加载类型定义。如果使用
require
,您将看到定义为
any
的类型。

因此,只要有可能,请坚持使用

import
关键字,您将获得加载并可供使用的类型。


0
投票
import { playlist_tracks } = require("NeteaseCloudMusicApi")

给了我

String literal expected.ts(1141)
@Ben

© www.soinside.com 2019 - 2024. All rights reserved.