diff --git a/solution/2600-2699/2614.Prime In Diagonal/README.md b/solution/2600-2699/2614.Prime In Diagonal/README.md
index ac7d02d3a9bdb..6ca582e98e373 100644
--- a/solution/2600-2699/2614.Prime In Diagonal/README.md	
+++ b/solution/2600-2699/2614.Prime In Diagonal/README.md	
@@ -194,6 +194,36 @@ func isPrime(x int) bool {
 }
 ```
 
+#### TypeScript
+
+```ts
+function diagonalPrime(nums: number[][]): number {
+    const n = nums.length;
+    let ans = 0;
+    for (let i = 0; i < n; ++i) {
+        if (isPrime(nums[i][i])) {
+            ans = Math.max(ans, nums[i][i]);
+        }
+        if (isPrime(nums[i][n - i - 1])) {
+            ans = Math.max(ans, nums[i][n - i - 1]);
+        }
+    }
+    return ans;
+}
+
+function isPrime(x: number): boolean {
+    if (x < 2) {
+        return false;
+    }
+    for (let i = 2; i <= Math.floor(x / i); ++i) {
+        if (x % i === 0) {
+            return false;
+        }
+    }
+    return true;
+}
+```
+
 #### Rust
 
 ```rust
@@ -231,6 +261,40 @@ impl Solution {
 }
 ```
 
+#### JavaScript
+
+```js
+/**
+ * @param {number[][]} nums
+ * @return {number}
+ */
+var diagonalPrime = function (nums) {
+    let ans = 0;
+    const n = nums.length;
+    for (let i = 0; i < n; i++) {
+        if (isPrime(nums[i][i])) {
+            ans = Math.max(ans, nums[i][i]);
+        }
+        if (isPrime(nums[i][n - i - 1])) {
+            ans = Math.max(ans, nums[i][n - i - 1]);
+        }
+    }
+    return ans;
+};
+
+function isPrime(x) {
+    if (x < 2) {
+        return false;
+    }
+    for (let i = 2; i * i <= x; i++) {
+        if (x % i === 0) {
+            return false;
+        }
+    }
+    return true;
+}
+```
+
 <!-- tabs:end -->
 
 <!-- solution:end -->
diff --git a/solution/2600-2699/2614.Prime In Diagonal/README_EN.md b/solution/2600-2699/2614.Prime In Diagonal/README_EN.md
index 55cbebcbccb83..2c2d74a03fb2a 100644
--- a/solution/2600-2699/2614.Prime In Diagonal/README_EN.md	
+++ b/solution/2600-2699/2614.Prime In Diagonal/README_EN.md	
@@ -192,6 +192,36 @@ func isPrime(x int) bool {
 }
 ```
 
+#### TypeScript
+
+```ts
+function diagonalPrime(nums: number[][]): number {
+    const n = nums.length;
+    let ans = 0;
+    for (let i = 0; i < n; ++i) {
+        if (isPrime(nums[i][i])) {
+            ans = Math.max(ans, nums[i][i]);
+        }
+        if (isPrime(nums[i][n - i - 1])) {
+            ans = Math.max(ans, nums[i][n - i - 1]);
+        }
+    }
+    return ans;
+}
+
+function isPrime(x: number): boolean {
+    if (x < 2) {
+        return false;
+    }
+    for (let i = 2; i <= Math.floor(x / i); ++i) {
+        if (x % i === 0) {
+            return false;
+        }
+    }
+    return true;
+}
+```
+
 #### Rust
 
 ```rust
@@ -229,6 +259,40 @@ impl Solution {
 }
 ```
 
+#### JavaScript
+
+```js
+/**
+ * @param {number[][]} nums
+ * @return {number}
+ */
+var diagonalPrime = function (nums) {
+    let ans = 0;
+    const n = nums.length;
+    for (let i = 0; i < n; i++) {
+        if (isPrime(nums[i][i])) {
+            ans = Math.max(ans, nums[i][i]);
+        }
+        if (isPrime(nums[i][n - i - 1])) {
+            ans = Math.max(ans, nums[i][n - i - 1]);
+        }
+    }
+    return ans;
+};
+
+function isPrime(x) {
+    if (x < 2) {
+        return false;
+    }
+    for (let i = 2; i * i <= x; i++) {
+        if (x % i === 0) {
+            return false;
+        }
+    }
+    return true;
+}
+```
+
 <!-- tabs:end -->
 
 <!-- solution:end -->
diff --git a/solution/2600-2699/2614.Prime In Diagonal/Solution.js b/solution/2600-2699/2614.Prime In Diagonal/Solution.js
new file mode 100644
index 0000000000000..ff8ce7c518c53
--- /dev/null
+++ b/solution/2600-2699/2614.Prime In Diagonal/Solution.js	
@@ -0,0 +1,29 @@
+/**
+ * @param {number[][]} nums
+ * @return {number}
+ */
+var diagonalPrime = function (nums) {
+    let ans = 0;
+    const n = nums.length;
+    for (let i = 0; i < n; i++) {
+        if (isPrime(nums[i][i])) {
+            ans = Math.max(ans, nums[i][i]);
+        }
+        if (isPrime(nums[i][n - i - 1])) {
+            ans = Math.max(ans, nums[i][n - i - 1]);
+        }
+    }
+    return ans;
+};
+
+function isPrime(x) {
+    if (x < 2) {
+        return false;
+    }
+    for (let i = 2; i * i <= x; i++) {
+        if (x % i === 0) {
+            return false;
+        }
+    }
+    return true;
+}
diff --git a/solution/2600-2699/2614.Prime In Diagonal/Solution.ts b/solution/2600-2699/2614.Prime In Diagonal/Solution.ts
new file mode 100644
index 0000000000000..6b0f295f9b07c
--- /dev/null
+++ b/solution/2600-2699/2614.Prime In Diagonal/Solution.ts	
@@ -0,0 +1,25 @@
+function diagonalPrime(nums: number[][]): number {
+    const n = nums.length;
+    let ans = 0;
+    for (let i = 0; i < n; ++i) {
+        if (isPrime(nums[i][i])) {
+            ans = Math.max(ans, nums[i][i]);
+        }
+        if (isPrime(nums[i][n - i - 1])) {
+            ans = Math.max(ans, nums[i][n - i - 1]);
+        }
+    }
+    return ans;
+}
+
+function isPrime(x: number): boolean {
+    if (x < 2) {
+        return false;
+    }
+    for (let i = 2; i <= Math.floor(x / i); ++i) {
+        if (x % i === 0) {
+            return false;
+        }
+    }
+    return true;
+}