- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个没有任何 typescript 定义的模块,我在我的代码中这样使用它:
import * as Switch from 'react-bootstrap-switch';
render () {
return
}
bởi vì react-bootstrap-switch
没有类型定义,我正在尝试为它创建一个。
我试过:
declare module 'react-bootstrap-switch'
{
import React = require("react");
class Switch extends React.Component<{onColor?:string},{} >
{}
export = Switch;
}
然而,这会导致原始代码中的 import 语句抛出此错误:
error TS2497: Module ''react-bootstrap-switch'' resolves to a non-module entity and cannot be imported using this construct.
编写满足上面代码的模块定义的正确方法是什么?
câu trả lời hay nhất
nhập khẩu
语句用于 .ts
文件不适用于 .d.ts
文件。对于那些你需要使用 ///
标签或简单 import React = __React;
类型导入。
这是我可以使用 react.d.ts 得到的结果文件和 React Switch源代码。
///
declare module 'react-bootstrap-switch'
{
function Switch(): __React.ClassicComponentClass;
export = Switch;
}
你怎么用typescript,和你怎么写JS库的定义文件,是完全不同的两件事。如果这对您不起作用,那么我想我可以撤下存储库并进行构建。
gia hạn
好的,我有一个工作版本
declare module 'react-bootstrap-switch'{
interface SwitchProps{
onColor?: string
}
class Switch extends __React.Component{}
export = Switch;
}
用法 import Switch = require('react-bootstrap-switch');
在你评论说你不能切换导入之前......
请阅读答案đây解释原因。请运行代码。您会看到库的 JS 版本仍按预期加载并运行。
我需要信用this postVà this definition感谢他们在这方面的帮助。
我的编译测试文件:
import * as React from 'react';
import Switch = require('react-bootstrap-switch');
var b = ;
var a = ;
结果输出:
var React = require('react');
var Switch = require('react-bootstrap-switch');
var b = React.createElement("div", null);
var a = React.createElement(Switch, null);
如您所见,两种导入的输出都是相同的,并且构建没有错误。
和 tsconfig.js:
{
"Tùy chọn biên dịch": {
"mô-đun": "commonjs",
"target": "es3",
"noImplicitAny": false,
"outDir": "built",
"rootDir": ".",
"sourceMap": false,
"moduleResolution": "node",
"jsx": "react"
},
"exclude": [
"node_modules"
]
}
关于typescript - 为此模块添加类型定义的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34972154/
Tôi đã viết và npm đã xuất bản gói này: https://github.com/justin-calleja/pkg-depends Bây giờ tôi đang viết gói này trong Typescript: https://g
Tôi có một hàm mà tôi muốn mô phỏng trong TypeScript để thử nghiệm. Trong các thử nghiệm của mình, tôi chỉ quan tâm đến json và trạng thái. Tuy nhiên, khi sử dụng jest.spyOn, kiểu hàm mô phỏng của tôi được đặt thành trả về h.
Tôi đang sử dụng thư viện (Axios) có khai báo Typescript trong gói của nó. Tôi muốn khai báo một hàm lấy AxiosResponse (được khai báo trong tệp .d.ts của thư viện) làm tham số. Tôi có những điều sau đây: chức năng
Tôi chưa quen với Bản đánh máy. Tôi muốn tải một tệp Typescript vào một tệp Typescript khác bằng thẻ. Tôi đã làm một cái gì đó nhưng nó không hoạt động! Xin hãy giúp tôi. đầu tiên.ts: imp
Tại sao tôi nhận được lỗi hiển thị trong ảnh chụp màn hình bên dưới? Atom cho biết tsconfig.json của tôi "Tệp dự án chứa các tùy chọn không hợp lệ" cho allowJ, buildOnSave và biên dịchOnSave. Nhưng nó phải được cho phép
Vì vậy, tôi đang tạo một thư viện TypeScript nơi tôi có thể dễ dàng biên dịch tất cả các tệp JS được tạo thành một tệp duy nhất. Có cách nào để biên dịch tất cả .ts và .d.ts thành một tệp .ts không? Ngoài phiên bản hỗ trợ JS (kém thông minh hơn
Microsoft Research cung cấp một biến thể trình biên dịch TypeScript mới có tên Safer TypeScript: http://research.microsoft.com/en-us/
Tôi cần điều này để phân phối các thư viện trong TypeScript trong một tệp duy nhất. Có cách nào để hợp nhất nhiều tệp bản thảo thành tệp (một tệp js + một định nghĩa bản thảo) không? Câu trả lời hay nhất Để tạo thư viện, bạn có thể
Ca sử dụng: Tôi muốn biết một hàm mất bao lâu để thực thi trong bản đánh máy. Tôi muốn sử dụng trang trí cho mục đích này. Tôi muốn trình trang trí trả về thời gian để (tôi có thể sử dụng thêm) thay vì chỉ in nó. Ví dụ: chức năng xuất
Tôi muốn kiểm tra xem một loại có thể rỗng hay không và liệu nó có loại giá trị có điều kiện hay không. Tôi đã cố triển khai type IsNullable = Textend null ? true : false; nhưng có vẻ như nó không hoạt động.
Câu hỏi của tôi dựa trên câu hỏi và câu trả lời này Giả sử chúng ta có mã tiếp theo: const myFn = (p: { a: (n: number) => T, b: (o: T) => v
Tôi biết về tiền tố phủ định kép và tôi biết về hậu tố đơn của TypeScript (xác nhận không null). Nhưng dấu chấm than hậu tố kép này là gì? /.*Mã xác minh là (\d{6}).*/.exec(email.body!!)!![1] Lấy từ đây
Tôi đang phát triển một dự án trong Webstorm bằng cấu trúc tệp sau | src |
Trong lớp TypeScript, bạn có thể khai báo một loại thuộc tính, ví dụ: class className { property: string }; Làm thế nào để khai báo loại thuộc tính trong một đối tượng bằng chữ? Tôi đã thử đoạn mã sau nhưng nó
Tôi đang tìm một cách hay để hạn chế các giá trị bằng chữ trong TypeScript ở một loại cụ thể mà không làm mất thông tin loại được suy ra. Chúng ta hãy xem xét một loại Được đặt tên, được đảm bảo có tên. gõ Được đặt tên = { tên:
Trong TypeScript, tôi muốn tạo một loại kết hợp để biểu thị các giá trị thuộc về một hoặc nhiều loại khác nhau, tương tự như oneOf trong Lược đồ OpenAPI hoặc JSON.
kiểu Func = (foo:string) => void // biểu thức hàm const myFunctionExpression:Func = hàm(f
Giả sử tôi có loại kết hợp và tôi đang sử dụng mẫu gọi API giống bộ giảm tốc trông như thế này: type Action = { request: { action: "create
Tôi có hàm gỡ lỗi sau trong bản ghi: hàm xuất debounce( callback: (...args: Any[]) => void, wait: tê
Trong hàm định nghĩa của Vue3, tham số chung đầu tiên là Props, vì vậy tôi sử dụng giao diện Typescript ở đây để cung cấp loại đạo cụ của mình. Thích: xuất khẩu
Tôi là một lập trình viên xuất sắc, rất giỏi!