gpt4 book ai didi

javascript - 如何在 Typescript 中使用 CSSNext 并避免讨厌的 "error TS2349"the Typescript - 方式

转载 作者:行者123 更新时间:2023-11-30 16:28:46 26 4
gpt4 key购买 nike

很抱歉,如果这个问题已经问了又问。但是每次我想在我的 Typescript 项目中使用外部节点包时,我总是遇到这个讨厌的“错误 TS2349”,什么不但是有一个 TypeScript 定义 :(

这是我当前的设置

node -v v5.0.0
tsc -v message TS6029: Version 1.6.2
OS: 4.1.12-1-ck GNU/Linux Arch
tsconfig {
"compilerOptions": {
"module": "commonjs",
"target": "ES5",
"noImplicitAny": false,
"outDir": "../lib",
"rootDir": ".",
"sourceMap": false
},
}
external node package : "cssnext": "^1.8.4"

我的主要代码

/// <reference path="../definitions/tsd/node/node.d.ts" />
import * as fs from "fs";
import * as cssnext from "cssnext";
let source = "./index.css";
let output = cssnext(
fs.readFileSync(source, "utf8"),
{from: source}
);
fs.writeFileSync("dist/index.css", output);

我在寻找什么?

var cssnext = require("cssnext")
var fs = require("fs")

var source = "./index.css"
var output = cssnext(
fs.readFileSync(source, "utf8"),
{from: source}
)
fs.writeFileSync("dist/index.css", output)

我得到了什么:(

tsc -p ./src;
src/main.ts(36,14): error TS2349: Cannot invoke an expression whose type lacks a call signature.

** _reference.d.ts 有 **

declare module "cssnext" {}
declare function cssnext(str: any,ops:Object): string | Object;

真正的问题是

英语中的“error TS2349”是什么意思,在这种情况下,我如何编写 ma​​d max TypeScript 定义来解决这个问题及相关问题。 :)

我喜欢 Type Script 方式,但其他时候 :(

** 回答**

在下面的帮助下解决这个问题的代码是:

declare module "cssnext" {
function cssnext(str: string,ops:Object): string | Object;
export default cssnext;
}
import * as cssnext from "cssnext";
let cssnext(str,op)

这可能不是 100% 的 cssnext 提示,但它是 TSD 的起点。

最佳答案

这个定义

declare module "cssnext" {}
declare function cssnextLib(str: any,ops:Object): string | Object;

表示有一个名为 "cssnext" 的模块没有成员。这是在您编写 import * as cssnextLib from "cssnext"; 时导入的类型。您在上述定义中编写的 cssnextLib 函数被 import 隐藏(隐藏),因此您看不到它。

你应该写的是:

declare module "cssnext" {
function cssnextLib(str: any,ops:Object): string | Object;
export = cssnextLib;
}

关于javascript - 如何在 Typescript 中使用 CSSNext 并避免讨厌的 "error TS2349"the Typescript - 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33678757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com