มีการบันทึกไวยากรณ์สำหรับความคิดเห็นของ TypeScript ไว้ที่ใด


165

ไวยากรณ์สำหรับความคิดเห็น TypeScript มีการบันทึกไว้ทุกที่หรือไม่?

และตอนนี้มันรองรับระบบ C # ///หรือไม่?

คำตอบ:


61

ไวยากรณ์ที่ถูกต้องในขณะนี้เป็นหนึ่งที่ใช้โดยTSDoc TSDocมันจะช่วยให้คุณสามารถแสดงความคิดเห็นของคุณโดย Visual Studio Code หรือเครื่องมือเอกสารอื่น ๆ

ภาพรวมที่ดีของไวยากรณ์ที่มีอยู่ที่นี่และโดยเฉพาะอย่างยิ่งที่นี่ ข้อมูลจำเพาะที่แม่นยำควรเป็น "เร็ว ๆ นี้" เขียนขึ้นเขียนขึ้น

ไฟล์อื่นที่ควรค่าแก่การตรวจสอบคือไฟล์นี้ที่คุณจะเห็นแท็กมาตรฐานที่มีประโยชน์

หมายเหตุ : คุณไม่ควรใช้ JSDoc ดังที่อธิบายไว้ในหน้าหลักของ TSDoc: ทำไม JSDoc ถึงไม่เป็นมาตรฐาน น่าเสียดายที่ไวยากรณ์ JSDoc ไม่ได้ระบุอย่างเข้มงวด แต่อนุมานจากพฤติกรรมของการใช้งานเฉพาะ ส่วนใหญ่ของแท็ก JSDoc มาตรฐานจะถูกครอบงำด้วยการให้คำอธิบายประกอบประเภทสำหรับ JavaScript ธรรมดาซึ่งเป็นข้อกังวลที่ไม่เกี่ยวข้องสำหรับภาษาที่พิมพ์อย่างรุนแรงเช่น TypeScript TSDoc ตอบสนองข้อ จำกัด เหล่านี้ในขณะเดียวกันก็จัดการกับชุดของเป้าหมายที่ซับซ้อนยิ่งขึ้น


177

อนาคต

ทีม TypeScript และทีม TypeScript อื่น ๆ ที่เกี่ยวข้องวางแผนที่จะสร้างข้อกำหนดมาตรฐาน TSDoc อย่างเป็นทางการ 1.0.0ร่างยังไม่ได้รับการสรุปเลย: https://github.com/Microsoft/tsdoc#where-are-we-on-the-roadmap

ป้อนคำอธิบายรูปภาพที่นี่

ปัจจุบัน

TypeScript ใช้ JSDoc เช่น

/** This is a description of the foo function. */
function foo() {
}

หากต้องการเรียนรู้ jsdoc: https://jsdoc.app/

การสาธิต

แต่คุณไม่จำเป็นต้องใช้ส่วนขยายหมายเหตุประกอบแบบใน JSDoc

คุณสามารถ (และควร) ยังคงใช้แท็กบล็อก jsdoc อื่น ๆเช่น@returnsฯลฯ

ตัวอย่าง

เป็นเพียงตัวอย่าง มุ่งเน้นไปที่ประเภท (ไม่ใช่เนื้อหา)

รุ่น JSDoc (ประเภทประกาศในเอกสาร):

/**
 * Returns the sum of a and b
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function sum(a, b) {
    return a + b;
}

เวอร์ชั่นของ TypeScript (สังเกตตำแหน่งของประเภท):

/**
 * Takes two numbers and returns their sum
 * @param a first input to sum
 * @param b second input to sum
 * @returns sum of a and b
 */
function sum(a: number, b: number): number {
    return a + b;
}

1
ตามที่ Bas บอก! สำหรับตัวอย่างที่ดีของการใช้งานลองใช้ jQuery.d.ts ของ DefinitelyTyped
John Reilly

1
สิ่งใดที่แน่นอนได้รับ jsdoc'ed โดย @JohnnyReilly! :) github.com/borisyankov/DefinitelyTyped/blame/master/jquery/…
basarat

14
นี่ไม่ใช่คำตอบที่ดีที่สุดเพราะไม่ได้อธิบายพารามิเตอร์คุณสมบัติและค่าส่งคืน
Piranha


5
นี่ไม่เป็นปัจจุบันแล้ว ดูคำตอบอัพเดทด้านล่าง
Qortex

59

คุณสามารถเพิ่มข้อมูลเกี่ยวกับพารามิเตอร์ผลตอบแทน ฯลฯ โดยใช้:

/**
* This is the foo function
* @param bar This is the bar parameter
* @returns returns a string version of bar
*/
function foo(bar: number): string {
    return bar.toString()
}

สิ่งนี้จะทำให้ผู้แก้ไขเช่น VS Code แสดงดังต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่


1
คุณรู้ปุ่มทางลัดสำหรับสิ่งนี้ใน VSCODE หรือไม่
jet_choong

3
หากคุณเริ่มพิมพ์/**แล้วกดtabในบรรทัดข้างต้นฟังก์ชั่นที่เป็น VS-รหัสช่วยคุณในการกรอกความคิดเห็น JSDoc กับพารามิเตอร์
Sharpiro

14

คุณสามารถใช้ความคิดเห็นเช่นใน JavaScript ปกติ:

ไวยากรณ์ TypeScript เป็นชุดของไวยากรณ์ Ecmascript 5 (ES5) [ ... ]

เอกสารนี้อธิบายถึงไวยากรณ์ไวยากรณ์ที่เพิ่มโดย TypeScript

นอกเหนือจากนั้นฉันเพิ่งพบสิ่งนี้เกี่ยวกับความคิดเห็นในข้อกำหนดภาษา:

typescript นอกจากนี้ยังมีการเขียนโปรแกรมจาวาสคริปต์ระบบไม่จำเป็นคำอธิบายประกอบประเภท คำอธิบายประกอบประเภทเหล่านี้เป็นความคิดเห็น JSDoc ที่พบในระบบปิด แต่ใน TypeScript พวกเขาจะถูกรวมเข้ากับไวยากรณ์ภาษาโดยตรง การรวมนี้ทำให้โค้ดอ่านง่ายขึ้นและลดค่าใช้จ่ายในการบำรุงรักษาของการเพิ่มความคิดเห็นแบบซิงโครไนซ์กับตัวแปรที่เกี่ยวข้อง

11.1.1 การอ้างอิงไฟล์ต้นฉบับ:

ความคิดเห็นของแบบฟอร์ม/// <reference path="..."/>เพิ่มการพึ่งพาไฟล์ต้นฉบับที่ระบุในอาร์กิวเมนต์เส้นทาง พา ธ ถูกแก้ไขโดยสัมพันธ์กับไดเร็กทอรีของไฟล์ต้นฉบับที่มี

ที่มา:
https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md


ลิงก์แหล่งที่มาใช้งานไม่ได้
Pavlo

1
แทนที่ด้วยลิงก์ไปยังแหล่งข้อมูลจำเพาะบน GitHub นอกจากนี้ยังมีในรูปแบบเอกสาร Word และ PDF: github.com/Microsoft/TypeScript/tree/master/doc
CodeManX

3

TypeScript เป็น superset ของ JavaScript ที่เข้มงวด

  • ความคิดเห็นบรรทัดเดียวเริ่มต้นด้วย //
  • ความคิดเห็นหลายบรรทัดเริ่มต้นด้วย / * และลงท้ายด้วย * /
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.