ค้นหาเว็บไซต์

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

บทความที่เกี่ยวข้อง