Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 类型脚本声明不发送自定义类型目录_Typescript - Fatal编程技术网

Typescript 类型脚本声明不发送自定义类型目录

Typescript 类型脚本声明不发送自定义类型目录,typescript,Typescript,我正在用typescript编写一个库,它有一个node_modules依赖项,但没有相应的@types定义,所以我编写了自己的 我把它放在一个typings文件夹中,并将其映射到Tconfig中,因此所有参考资料都在我的库中工作。当我编译它时(tsconfig中的declaration=true),该定义找不到,从另一个项目导入时会中断 如何使自定义节点_模块定义以一种声明在可分发文件中正确的方式导出 我的tsconfig.json { "compilerOptions": {

我正在用typescript编写一个库,它有一个node_modules依赖项,但没有相应的@types定义,所以我编写了自己的

我把它放在一个typings文件夹中,并将其映射到Tconfig中,因此所有参考资料都在我的库中工作。当我编译它时(tsconfig中的declaration=true),该定义找不到,从另一个项目导入时会中断

如何使自定义节点_模块定义以一种声明在可分发文件中正确的方式导出

我的tsconfig.json

{
    "compilerOptions": {
        "baseUrl": "./src",
        "paths": {
            "*": [
                "./typings/*"
            ]
        },
        "outDir": "dist",
        "module": "commonjs",
        "declaration": true,
        "declarationDir": "dist/typings",
        "target": "es5",
        "sourceMap": true,
        "inlineSourceMap": false,
        "inlineSources": false,
        "experimentalDecorators": true,
        "strict": true,
        "noUnusedParameters": true,
        "noUnusedLocals": true,
        "jsx": "react",
        "moduleResolution": "node",
        "pretty": true,
        "noEmitHelpers": true,
        "importHelpers": true,
        "lib": [
            "dom",
            "es2015"
        ],
        "typeRoots": [
            "typings"
        ]
    },
    "compileOnSave": true,
    "include": [
        "./src"
    ]
}
在项目根目录下的typings文件夹中,我有

- typings
 - rc-slider
   - index.d.ts
索引d.ts的内容:

declare module "rc-slider" {
    import * as React from "react";

    export interface Marks {
...
    export default class Slider extends React.Component<SliderProps> {}
    export class Range extends React.Component<RangeProps> {}
    export class Handle extends React.Component<HandleProps> {}
}
声明模块“rc滑块”{
从“React”导入*作为React;
导出接口标记{
...
导出默认类滑块扩展React.Component{}
导出类范围扩展了React.Component{}
导出类句柄扩展了React.Component{}
}
在使用rc滑块模块的文件中,我有:

import RcSlider, {
    Range,
    Handle,
    SliderProps as RcSliderProps,
} from "rc-slider";

export interface SliderProps extends RcSliderProps {
...
export class Slider extends Component<SliderProps> {
    public render() {
        const { label, name, formState, ...sliderProps } = this.props;
        const hasError = formState.getError(this.props.name);
        let err;
        if (hasError) {
            err = hasError.detail || hasError.title;
        }
        const disabled =
            formState.disabled || formState.submitting || sliderProps.disabled;
        renderCss();
        return (
            <FormControl label={label} error={err}>
                <RcSlider {...sliderProps} disabled={disabled} />
            </FormControl>
        );
    }
}
import-RcSlider{
范围
手柄
SliderProps作为RcSliderProps,
}从“钢筋混凝土滑块”;
导出接口SliderProps扩展了RcSliderProps{
...
导出类滑块扩展组件{
公共渲染(){
const{label,name,formState,…sliderProps}=this.props;
const hasError=formState.getError(this.props.name);
让我们犯错;
if(hasrerror){
err=hasrerror.detail | | hasrerror.title;
}
常数禁用=
formState.disabled | | formState.submiting | | | sliderProps.disabled;
renderCss();
返回(
);
}
}
这是一个由它上面组成的滑块,它使用了我编写的rc滑块定义中定义的相同属性 Slider.d.ts文件包含:

import { Component } from "react";
import { Range, Handle, SliderProps as RcSliderProps } from "rc-slider";
import { FormState } from "./FormState";
export { Range, Handle, RcSliderProps };
export interface SliderProps extends RcSliderProps {
    label: string;
    disabled?: boolean;
    name: string;
    formState: FormState;
    onChange: (v: string) => void;
}
export declare class Slider extends Component<SliderProps> {
    render(): JSX.Element;
}
从“react”导入{Component};
从“rc slider”导入{Range,Handle,SliderProps as RcSliderProps};
从“/FormState”导入{FormState};
导出{Range,Handle,RcSliderProps};
导出接口SliderProps扩展了RcSliderProps{
标签:字符串;
禁用?:布尔值;
名称:字符串;
formState:formState;
onChange:(v:string)=>void;
}
导出声明类滑块扩展组件{
render():JSX.Element;
}
但是rc滑块类型为“any”,在我导入库时找不到这些道具,这些道具不可用。我如何让typescript导出我的定义


谢谢!

请编写一个。向我们展示声明文件、package.json和tsconfig.json,以及您如何将库包含在消费者项目中。@E_net4已用示例更新。请编写一个。向我们展示声明文件、package.json和tsconfig.json,以及您如何将库包含在消费者项目中。@E_net4已用ex更新安瓿。