คำถามติดแท็ก typescript-typings

3
ฉันจะตัดสินใจได้อย่างไรว่า @ type / * เข้าสู่ "dependencies" หรือ "devDependencies" ได้อย่างไร
ฉันใช้ TypeScript 2 ในโครงการของฉัน ฉันต้องการใช้ไลบรารี js บางตัว แต่ก็มีการพิมพ์สำหรับห้องสมุดนั้นด้วย npm install @types/some-libraryฉันสามารถติดตั้งประเภทด้วยง่าย ฉันไม่แน่ใจว่าฉันควร--saveหรือ--save-devพวกเขา สำหรับฉันแล้วดูเหมือนว่า DefinetelyTyped GitHub readme เป็นประเภทที่กล่าวถึงทั้งสองรุ่น แต่ไม่เคยอธิบายเลย ฉันคิดว่า @types ควรจะอยู่ในdevDependenciesเป็นประเภทที่มีความจำเป็นสำหรับการพัฒนาและไม่ได้ใช้ในการรันไทม์ แต่ผมเห็น @types dependenciesหลายครั้งในเวลาเพียง ฉันสับสน ฉันจะตัดสินใจได้อย่างไรว่า @ type / * เข้าสู่dependenciesหรือdevDependenciesไม่? จริงๆแล้วมีคำแนะนำอย่างเป็นทางการบ้างหรือไม่?

11
อินพุต typescript onchange event.target.value
ในแอป react และ typescript ของฉันฉันใช้: onChange={(e) => data.motto = (e.target as any).value}. ฉันจะทำอย่างไรได้อย่างถูกต้องกำหนด typings สำหรับการเรียนดังนั้นฉันจะได้ไม่ต้องตัดทางของฉันรอบระบบการพิมพ์ด้วยany? export interface InputProps extends React.HTMLProps<Input> { ... } export class Input extends React.Component<InputProps, {}> { } ถ้าฉันใส่target: { value: string };ฉันจะได้รับ: ERROR in [default] /react-onsenui.d.ts:87:18 Interface 'InputProps' incorrectly extends interface 'HTMLProps<Input>'. Types of property 'target' …

11
การแทนที่ประเภทคุณสมบัติของอินเตอร์เฟสที่กำหนดในไฟล์ typescript d.ts
มีวิธีเปลี่ยนประเภทของคุณสมบัติอินเตอร์เฟสที่กำหนดในไฟล์ *.d.tsใน typecript หรือไม่ ตัวอย่างเช่น: อินเทอร์เฟซในx.d.tsถูกกำหนดเป็น interface A { property: number; } ฉันต้องการเปลี่ยนมันในไฟล์ typescript ที่ฉันเขียนถึง interface A { property: Object; } หรือแม้กระทั่งสิ่งนี้ก็ใช้ได้ interface B extends A { property: Object; } แนวทางนี้จะได้ผลหรือไม่? ไม่ได้ผลเมื่อฉันลองใช้ระบบของฉัน แค่ต้องการยืนยันว่าเป็นไปได้หรือไม่?

3
การพิมพ์ TypeScript ในแพ็คเกจองค์กร npm @types
ฉันสังเกตเห็นว่ามี npm organization @typesซึ่งมีแพ็คเกจการพิมพ์ แต่ไม่พบเอกสารใด ๆ วิธีการใช้เหล่านี้มีความหมายอย่างไร? มันมีความหมายที่จะใช้กับtypingsเครื่องมือ? ถ้าเป็นเช่นนั้นจะติดตั้งอย่างไร? ตัวอย่างเช่นมี@types/openlayersแพ็กเกจ แต่typings search npm:openlayersไม่ส่งคืนอะไรเลย หมายถึงใช้แยกจากเครื่องมือพิมพ์หรือไม่? เช่นติดตั้งโดยตรงกับnpm?

7
คุณสมบัติ 'X' เป็นแบบส่วนตัวและสามารถเข้าถึงได้เฉพาะในคลาส 'xyzComponent'
ฉันกำลังพยายามสร้างแอปพลิเคชั่น angular2 สำหรับการผลิตที่ฉันติดตามบล็อกนี้ หลังจากการคอมไพล์ngcของฉันประสบความสำเร็จเมื่อการคอมไพล์ tscเกิดขึ้นมันจะสร้างข้อผิดพลาดด้านล่างที่แสดงในภาพ: หลังจากค้นหาอยู่สักพักฉันก็พบบล็อกนี้ซึ่งอธิบายปัญหาในส่วน"คุณสมบัติบริบท"ซึ่งฉันไม่สามารถเข้าใจได้อย่างถูกต้องอาจเป็นเพราะมีความคิดที่ดีกับคุณว่าเกิดอะไรขึ้น โดยพื้นฐานแล้วเมื่อเราสร้างตัวแปรให้เป็นส่วนตัวเราจะได้รับ"ข้อผิดพลาด: คุณสมบัติเป็นส่วนตัวและสามารถเข้าถึงได้ภายในคลาสเท่านั้น" ฉันไม่เข้าใจว่าทำไมมันถึงมา กรุณาช่วยเราในขณะที่เรากำลังเผชิญหน้ากับปัญหานี้ในช่วงสองสามวันที่ผ่านมา

4
นำเข้าคลาสในไฟล์นิยาม (* d.ts)
ฉันต้องการขยายการพิมพ์เซสชันด่วนเพื่ออนุญาตให้ใช้ข้อมูลที่กำหนดเองของฉันในพื้นที่จัดเก็บเซสชัน ฉันมีวัตถุreq.session.userที่เป็นตัวอย่างของคลาสของฉันUser: export class User { public login: string; public hashedPassword: string; constructor(login?: string, password?: string) { this.login = login || "" ; this.hashedPassword = password ? UserHelper.hashPassword(password) : ""; } } ดังนั้นฉันจึงสร้างown.d.tsไฟล์ของฉันเพื่อรวมนิยามกับการพิมพ์เซสชันด่วนที่มีอยู่: import { User } from "./models/user"; declare module Express { export interface Session { user: User; } …

4
TypeScript 2: การพิมพ์แบบกำหนดเองสำหรับโมดูล npm ที่ไม่ได้พิมพ์
หลังจากลองใช้คำแนะนำที่โพสต์ในที่อื่น ๆฉันพบว่าตัวเองไม่สามารถรับโปรเจ็กต์ typescript ที่ทำงานโดยใช้โมดูล NPM ที่ไม่ได้พิมพ์ ด้านล่างนี้เป็นตัวอย่างเล็กน้อยและขั้นตอนที่ฉันลอง สำหรับตัวอย่างเล็กน้อยนี้เราจะแสร้งทำเป็นว่าlodashไม่มีคำจำกัดความประเภทที่มีอยู่ ดังนั้นเราจะเพิกเฉยต่อแพ็คเกจ@types/lodashและพยายามเพิ่มไฟล์การพิมพ์lodash.d.tsลงในโครงการของเราด้วยตนเอง โครงสร้างโฟลเดอร์ node_modules ลอดจ์ src foo.ts การพิมพ์ กำหนดเอง lodash.d.ts ทั่วโลก index.d.ts package.json tsconfig.json typings.json ถัดไปไฟล์ ไฟล์ foo.ts ///<reference path="../typings/custom/lodash.d.ts" /> import * as lodash from 'lodash'; console.log('Weeee'); ไฟล์lodash.d.tsจะถูกคัดลอกโดยตรงจาก@types/lodashแพ็คเกจดั้งเดิม ไฟล์ index.d.ts /// <reference path="custom/lodash.d.ts" /> /// <reference path="globals/lodash/index.d.ts" /> ไฟล์ package.json { "name": …

4
มีข้อผิดพลาด "ชื่อโมดูล" จะแก้ไขเป็นโมดูลที่ไม่ได้พิมพ์ที่ ... "เมื่อเขียนไฟล์นิยาม TypeScript แบบกำหนดเอง
ฉันไม่พบคำจำกัดความ TypeScript @type/{name}สำหรับหนึ่งในแพ็คเกจ NodeJS ที่ฉันติดตั้งไว้ดังนั้นฉันจึงพยายามเขียนd.tsไฟล์และใส่ไฟล์ไว้ใน{project root}\typingsโฟลเดอร์ นี่คือวิธีที่ฉันทำ: // My source code: index.ts import Helper from 'node-helper-lib'; // My definition: \typings\node-helper-lib.d.ts declare....(something else) declare module 'node-helper-lib' { class Helper { ... } export = Helper; } อย่างไรก็ตาม Visual Studio Code ยังคงให้ข้อผิดพลาดนี้และทำให้เส้นสีแดงอยู่ใต้declare module 'node-helper-lib': [ts] ชื่อโมดูลไม่ถูกต้องในการเสริม โมดูล 'node-helper-lib' แก้ไขเป็นโมดูลที่ไม่ได้พิมพ์ที่ '{project path} \ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.