typescript - ปิดใช้งานกฎ camelcase สำหรับตัวระบุในอินเทอร์เฟซเฉพาะ
ฉันใช้ปลั๊กอิน @typescript-eslint เพื่อเพิ่มกฎให้กับโค้ด TypeScript ของฉันโดยใช้ eslint
กฎข้อหนึ่งที่ฉันได้เปิดใช้งานคือ camelcase:
"@typescript-eslint/camelcase": ["error", { "properties": "always" }]
มันช่วยให้ฉันปรับชื่อของตัวแปรและอินเทอร์เฟซของฉันให้เป็นมาตรฐาน
ปัญหาคือรูปแบบ JSON มาตรฐานใช้รูปแบบ snake_case ในการตั้งชื่อของตัวระบุ ดังนั้นการตอบกลับคำขอ API ทั้งหมดของฉันจึงใช้ snake_case
ในกรณีนี้ ฉันต้องประกาศอินเทอร์เฟซโดยใช้ snake_case แบบนั้น:
interface UserResponse {
id: number
dark_mode: boolean
status_code: string
}
ดังนั้นคำถามของฉันคือ: มีวิธีปิดกฎนี้สำหรับตัวระบุที่กำหนดในอินเตอร์เฟสซึ่งลงท้ายด้วย Response ไหม? เพื่อที่จะไม่มีข้อผิดพลาด lint ในอินเตอร์เฟส UserResponse ของฉัน
@typescript-eslint มีพารามิเตอร์ที่น่าสนใจชื่อ allow ที่อนุญาตให้ปิดกฎสำหรับชื่อเฉพาะที่ตรงกับ regex:
/* @typescript-eslint/camelcase: ["error", {allow: ["Response$"]}] */
interface Foo_Bar_Response {
...
}
ที่นี่ตัวตรวจสอบโค้ดจะไม่ตรวจสอบรูปแบบ snake_case จาก Foo_Bar_Response เพราะมันลงท้ายด้วยคำว่า Response
แต่ที่นี่มันใช้ได้เฉพาะกับชื่อของอินเทอร์เฟซเองเท่านั้น และไม่ใช่กับชื่อของตัวระบุย่อยเหล่านี้
มีไอเดียไหมว่าเราจะทำให้สิ่งนี้ได้ผลอย่างไร?
คำตอบ #1
นี่คือปัญหาที่ปิดไปแล้วบน GitHub https://github.com/typescript-eslint/typescript-eslint/issues/2077 คุณสามารถลองแก้ไขในฐานข้อมูลโค้ด ซึ่งไม่แนะนำ คุณสามารถลองปิดใช้งานด้วยตัวเลือก: ขึ้นอยู่กับกรณีการใช้งานของตัวแปรแบบ camelcase หรือคุณสมบัติของอินเทอร์เฟซในโปรเจกต์ของคุณ https://eslint.org/docs/rules/camelcase