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